#ifndef _NNSLITE_VECTOR_H_
#define _NNSLITE_VECTOR_H_

#include "nnsliteglobal.h"

/** nnsliteVector  */
struct nnsliteVector
{
	u8* buf;
	u32 capacity;
	u32 size;
	u32 elemsize;
};

typedef struct nnsliteVector nnsliteVector;

NNSLITE_RET nnsliteVectorInit(nnsliteVector* v, u32 elemsize);
NNSLITE_RET nnsliteVectorFree(nnsliteVector* v);
NNSLITE_RET nnsliteVectorClear(nnsliteVector* v);
NNSLITE_RET nnsliteVectorGet(nnsliteVector*v, u32 index, void* ptr);
NNSLITE_RET nnsliteVectorPushback(nnsliteVector* v, void* ptr);
NNSLITE_RET nnsliteVectorDelete(nnsliteVector* v, u32 index);
NNSLITE_RET nnsliteVectorReplace(nnsliteVector* v, u32 index, void* ptr);

#define nnsliteVectorSet nnsliteVectorReplace

#endif
